home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-11 / marjam10.zip / MARJAM10.DOC < prev    next >
Text File  |  1993-01-04  |  38KB  |  1,624 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.                                  MARJAM10.LIB
  28.  
  29.                         The MARJAM Library for Clipper
  30.  
  31.                                   Version 1.0
  32.  
  33.                              Designed & Developed
  34.  
  35.                                        by
  36.  
  37.                      Margaret G. Bodine & James C. Bodine
  38.  
  39.                                 March 1, 1989
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.                                     Page 1
  65.  
  66.      MARJAM10.LIB                Documentation              March 1, 1989
  67.      ====================================================================
  68.  
  69.                                Table of Contents
  70.  
  71.           Copyrights....................................... 3
  72.  
  73.           Disclaimer....................................... 3
  74.  
  75.           Overview......................................... 3
  76.  
  77.           Registration..................................... 3
  78.  
  79.           Usage............................................ 4
  80.  
  81.           Linking.......................................... 4
  82.  
  83.           Agreement........................................ 4
  84.  
  85.           QBE_MENU......................................... 5
  86.  
  87.           QBE_COUNT........................................ 6
  88.  
  89.           QBE_DELETE....................................... 7
  90.  
  91.           QBE_FILTER....................................... 8
  92.  
  93.           QBE_LABEL........................................ 9
  94.  
  95.           QBE_LOCATE.......................................10
  96.  
  97.           QBE_RECALL.......................................11
  98.  
  99.           QBE_REPORT.......................................12
  100.  
  101.           WNDW_DOWN........................................13
  102.  
  103.           WNDW_LEFT........................................14
  104.  
  105.           WNDW_OUT.........................................15
  106.  
  107.           WNDW_RIGHT.......................................16
  108.  
  109.           WNDW_UP..........................................17
  110.  
  111.           DIM_CLR..........................................18
  112.  
  113.           RVRS_CLR.........................................19
  114.  
  115.           SWTCH_CLR........................................20
  116.  
  117.           UNSLCT_CLR.......................................21
  118.  
  119.           FILE_CNT.........................................22
  120.  
  121.           USR_SLCT.........................................23
  122.  
  123.           History..........................................24
  124.  
  125.           Order Form.......................................25
  126.  
  127.  
  128.  
  129.                                     Page 2
  130.  
  131.      MARJAM10.LIB                Documentation              March 1, 1989
  132.      ====================================================================
  133.  
  134.                                   Copyrights
  135.  
  136.      CLIPPER is a trademark of Nantucket, Corporation
  137.  
  138.      IBM is a trademark of International Business Machines
  139.  
  140.      PLINK86 and PLINK86plus are trademarks of Phoenix Technologies, Ltd.
  141.  
  142.      --------------------------------------------------------------------
  143.  
  144.                                   Disclaimer
  145.  
  146.      While significant amounts of time and effort were expended designing
  147.      and developing the functions and procedures contained in The MARJAM
  148.      Library, it can not be guaranteed that they are totally error free.
  149.      The MARJAM Library is released "as is" and the authors make no
  150.      warranties, expressed or implied, with respect to this software,
  151.      including without limitation, warranties of merchantability and
  152.      fitness for a particular use.  In no event shall the authors be liable
  153.      for any direct, indirect or consequential damages, real or imagined.
  154.  
  155.      --------------------------------------------------------------------
  156.  
  157.                                    Overview
  158.  
  159.      The MARJAM Library is written entirely in the Clipper S87 language
  160.      and as such is compatible with IBM computers and any 100% IBM
  161.      compatibles that can use the Clipper S87 language.  The MARJAM
  162.      Library contains one (1) procedure and eighteen (18) functions
  163.      that provide the Clipper programmer with additional tools to
  164.      develop programs.  Basically, The MARJAM Library procedure and
  165.      functions are divided into four (4) sections.  These include the
  166.      Query-By-Example (QBE) procedure and functions, the Window (WNDW)
  167.      functions, the Color (CLR) functions and additional miscellaneous
  168.      functions.  These procedure and functions are designed to allow
  169.      the Clipper programmer to provide additional database tools for
  170.      the end user as well as screen interface tools.
  171.  
  172.      --------------------------------------------------------------------
  173.  
  174.                                  Registration
  175.  
  176.      In order to become a registered user of The MARJAM Library, please
  177.      send $25, check or money order, in US funds to the following address:
  178.  
  179.                               The MARJAM Library
  180.                               149 Stockton Lane
  181.                               Rochester, NY  14625
  182.  
  183.      Please make checks payable to Margaret G. Bodine or James C. Bodine.
  184.  
  185.      Becoming a registered user will entitle you to the following:
  186.  
  187.      -  Notification of future revisions prior to release
  188.      -  Updating to future revisions for $10 prior to release
  189.      -  Source code for currently released version of the MARJAM Library
  190.  
  191.      Please use the ORDER FORM on the last page of this documentation
  192.      to become a registered user.
  193.  
  194.                                     Page 3
  195.  
  196.      MARJAM10.LIB                Documentation              March 1, 1989
  197.      ====================================================================
  198.  
  199.                                     Usage
  200.  
  201.      All procedures and functions, since written entirely with the
  202.      Clipper S87 language, of The MARJAM Library can be used like any
  203.      other Clipper procedure or function.  No special usage is required
  204.      however, examples of sample usages of each procedure and function
  205.      are provided in the discussion for each procedure and function.
  206.      Proper syntax for each procedure or function is also provided in
  207.      this discussion area.
  208.  
  209.      --------------------------------------------------------------------
  210.  
  211.                                    Linking
  212.  
  213.      During the design and development of The MARJAM Library, the only
  214.      linker used was the PLINK86 linker provided with the Clipper S87
  215.      program.  Since the MARJAM Library is a library, it should be copied
  216.      into the same directory as the Clipper and Extend libraries.  If
  217.      your application utilizes any procedure or function of The MARJAM
  218.      Library, than you link command need only include The MARJAM Library
  219.      in the command.  For example if you were to use the RVRS_CLR function
  220.      in your application, than your link command would need to be executed
  221.      as follows:
  222.  
  223.      PLINK86 Fi [your filename] Lib Clipper, MARJAM, Extend
  224.  
  225.      The above command assumes you have included a library path for the
  226.      various libraries you use in your AUTOEXEC file.
  227.  
  228.      --------------------------------------------------------------------
  229.  
  230.                                   Agreement
  231.  
  232.      Any user of The MARJAM Library is hereby authorized to use this
  233.      library on a trial basis for evaluation purposes.  If a user is
  234.      interested in using The MARJAM Library in its applications, than
  235.      that user is expected to become a registered user.  If a user
  236.      does not plan on using The MARJAM Library, buts would like to pass
  237.      a copy of The MARJAM Library on to other potential users, all
  238.      copies passed shall be in the archived format and must contain The
  239.      MARJAM Library and Documentation, files MARJAM10.LIB and MARJAM10.DOC.
  240.      Your adherence to this agreement will be appreciated.
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.                                     Page 4
  261.  
  262.      MARJAM10.LIB                Documentation              March 1, 1989
  263.      ====================================================================
  264.  
  265.                                    QBE_MENU
  266.  
  267.      This procedure allows you to execute any of the Query-By-Example
  268.      (QBE) functions contained in the MARJAM Library by presenting a
  269.      menu of these functions.  Since these functions can only work if
  270.      an active database is used, this program also provides you with
  271.      a list of available databases (if one is not already used) for the
  272.      user to select prior to executing the QBE function selected.
  273.  
  274.      There are two (2) ways a programmer can make use of this procedure.
  275.      First, you can make this an option on a menu and execute the procedure
  276.      if selected.  Thus programming would appear as follows:
  277.  
  278.           @ x,y   PROMPT "option 1"
  279.           @ x,y+1 PROMPT "option 2"
  280.           @ x,y+2 PROMPT "QUERY"     && use MARJAM Library functions
  281.           @ x,y+3 PROMPT "option 4"
  282.           MENU TO choice
  283.           DO CASE
  284.             CASE choice = 1
  285.               commands
  286.             CASE choice = 2
  287.               commands
  288.             CASE choice = 3
  289.               DO qbe_menu
  290.             CASE choice = 4
  291.               commands
  292.           ENDCASE
  293.  
  294.      The other method would be to make using the QBE functions a "hot
  295.      key" for the user to select.  For this method the programming would
  296.      be as follows:
  297.  
  298.           EXTERNAL qbe_menu
  299.           SET KEY -1 TO qbe_menu  && make F2 key the "hot key"
  300.  
  301.      Either method is acceptable and will execute the QBE_MENU procedure.
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.                                     Page 5
  326.  
  327.      MARJAM10.LIB                Documentation              March 1, 1989
  328.      ====================================================================
  329.  
  330.                                   QBE_COUNT
  331.  
  332.      This function allows the end user to count the number of records of
  333.      an active database which meet the conditions established by the user
  334.      via the Query-By-Example method.
  335.  
  336.      SYNTAX:  QBE_COUNT()
  337.  
  338.      PASS:    nothing
  339.  
  340.      RETURN:  .F.  if aborted
  341.               .T.  if completed
  342.  
  343.      SAMPLE:
  344.  
  345.               USE database INDEX data
  346.               QBE_COUNT()
  347.               USE
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                                     Page 6
  391.  
  392.      MARJAM10.LIB                Documentation              March 1, 1989
  393.      ====================================================================
  394.  
  395.                                   QBE_DELETE
  396.  
  397.      This function allows the end user to mark for deletion records of
  398.      an active database which meet the conditions established by the user
  399.      via the Query-By-Example method.
  400.  
  401.      SYNTAX:  QBE_DELETE()
  402.  
  403.      PASS:    nothing
  404.  
  405.      RETURN:  .F.  if aborted
  406.               .T.  if completed
  407.  
  408.      SAMPLE:
  409.  
  410.               USE database INDEX data
  411.               QBE_DELETE()
  412.               IF mconfirm = "Y"  && confirm permanent removal
  413.                 PACK
  414.               ENDIF
  415.               USE
  416.  
  417.  
  418.      SEE ALSO:  QBE_RECALL
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.                                     Page 7
  456.  
  457.      MARJAM10.LIB                Documentation              March 1, 1989
  458.      ====================================================================
  459.  
  460.                                   QBE_FILTER
  461.  
  462.      This function allows the end user to set a filter for an active
  463.      database which meet the conditions established by the user via
  464.      the Query-By-Example method.  The function internally sets the
  465.      filter and executes the necessary GO TOP command to make the
  466.      filter active.
  467.  
  468.      SYNTAX:  QBE_FILTER()
  469.  
  470.      PASS:    nothing
  471.  
  472.      RETURN:  .F.  if aborted
  473.               .T.  if completed
  474.  
  475.      SAMPLE:
  476.  
  477.               USE database INDEX data
  478.               QBE_FILTER()
  479.               commands  && other commands such as DBEDIT()
  480.               USE
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.                                     Page 8
  521.  
  522.      MARJAM10.LIB                Documentation              March 1, 1989
  523.      ====================================================================
  524.  
  525.                                   QBE_LABEL
  526.  
  527.      This function allows the end user to output any number of records of
  528.      an active database which meet the conditions established by the user
  529.      via the Query-By-Example method using any predefined .LBL file.  A
  530.      menu of all available .LBL files are presented to the user for
  531.      selection prior to executing the Query-By-Example prompts.
  532.  
  533.      Since this function will fail if the selected .LBL file is not
  534.      compatible with the database in use (ie: the fields in the database
  535.      are not those contained in the .LBL file), this function allows for
  536.      the user to pass a character string to "filter" only those .LBL files
  537.      that contain the character string.  If no string is provided, all
  538.      .LBL files will be listed.
  539.  
  540.      In order to make this function more useful, and to prevent failure
  541.      it is suggested that individual .LBL files utilize a unique letter
  542.      as the first character in the .LBL filename that ties the file to
  543.      its associated database.  For instance, if a database of customers
  544.      existed called CUST.DBF, any associated .LBL files would start with
  545.      the letter "C", such as CACTIVE.LBL for a label file of active
  546.      customers.
  547.  
  548.      The function will list those records meeting the QBE condition in
  549.      the label format to the screen, printer or file, the choice also
  550.      made by the user.  If a file is selected, the user is prompted for
  551.      a name and the suffix .TXT is automatically appended to the name.
  552.  
  553.      SYNTAX:  QBE_LABEL([expC])
  554.  
  555.               expC must be enclosed in quotes - "C"
  556.  
  557.      PASS:    expC
  558.  
  559.      RETURN:  .F.  if aborted
  560.               .T.  if completed
  561.  
  562.      SAMPLE:
  563.  
  564.               USE database INDEX data
  565.               QBE_LABEL("D")
  566.               USE
  567.  
  568.  
  569.      SEE ALSO:  QBE_REPORT
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.                                     Page 9
  586.  
  587.      MARJAM10.LIB                Documentation              March 1, 1989
  588.      ====================================================================
  589.  
  590.                                   QBE_LOCATE
  591.  
  592.      This function allows the end user to locate the first record of
  593.      an active database which meet the conditions established by the user
  594.      via the Query-By-Example method.  After locating the first record,
  595.      the function allows the user to continue locating records which meet
  596.      the condition or quit locating records.  The record number of each
  597.      record located is displayed on the screen for the user to view.
  598.  
  599.      SYNTAX:  QBE_LOCATE()
  600.  
  601.      PASS:    nothing
  602.  
  603.      RETURN:  .F.  if aborted
  604.               .T.  if completed
  605.  
  606.      SAMPLE:
  607.  
  608.               USE database INDEX data
  609.               QBE_LOCATE()
  610.               USE
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.                                     Page 10
  651.  
  652.      MARJAM10.LIB                Documentation              March 1, 1989
  653.      ====================================================================
  654.  
  655.                                   QBE_RECALL
  656.  
  657.      This function allows the end user to recall records marked for
  658.      deletion in an active database which meet the conditions established by
  659.      the user via the Query-By-Example method.  This function will only
  660.      recall records marked for deletion that have not been permanently
  661.      removed via the PACK command.  If the user is recalling records
  662.      marked for deletion via the QBE_DELETE function, care should be
  663.      taken to use the same Query-By-Example conditions with the QBE_RECALL
  664.      function as used with the QBE_DELETE function or all records deleted
  665.      many not be recalled.
  666.  
  667.      SYNTAX:  QBE_RECALL()
  668.  
  669.      PASS:    nothing
  670.  
  671.      RETURN:  .F.  if aborted
  672.               .T.  if completed
  673.  
  674.      SAMPLE:
  675.  
  676.               USE database INDEX data
  677.               QBE_RECALL()
  678.               USE
  679.  
  680.  
  681.      SEE ALSO:  QBE_DELETE
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.                                     Page 11
  716.  
  717.      MARJAM10.LIB                Documentation              March 1, 1989
  718.      ====================================================================
  719.  
  720.                                   QBE_REPORT
  721.  
  722.      This function allows the end user to output any number of records of
  723.      an active database which meet the conditions established by the user
  724.      via the Query-By-Example method using any predefined .FRM file.  A
  725.      menu of all available .FRM files are presented to the user for
  726.      selection prior to executing the Query-By-Example prompts.
  727.  
  728.      Since this function will fail if the selected .FRM file is not
  729.      compatible with the database in use (ie: the fields in the database
  730.      are not those contained in the .FRM file), this function allows for
  731.      the user to pass a character string to "filter" only those .FRM files
  732.      that contain the character string.  If no string is provided, all
  733.      .FRM files will be listed.
  734.  
  735.      In order to make this function more useful, and to prevent failure
  736.      it is suggested that individual .FRM files utilize a unique letter
  737.      as the first character in the .FRM filename that ties the file to
  738.      its associated database.  For instance, if a database of customers
  739.      existed called CUST.DBF, any associated .FRM files would start with
  740.      the letter "C", such as CACTIVE.FRM for a report file of active
  741.      customers.
  742.  
  743.      The function will list those records meeting the QBE condition in
  744.      the report format to the screen, printer or file, the choice also
  745.      made by the user.  If a file is selected, the user is prompted for
  746.      a name and the suffix .TXT is automatically appended to the name.
  747.  
  748.      SYNTAX:  QBE_REPORT([expC])
  749.  
  750.      PASS:    expC  character string (must be enclosed in quotes)
  751.  
  752.      RETURN:  .F.  if aborted
  753.               .T.  if completed
  754.  
  755.      SAMPLE:
  756.  
  757.               USE database INDEX data
  758.               QBE_REPORT("D")
  759.               USE
  760.  
  761.  
  762.      SEE ALSO:  QBE_LABEL
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.                                     Page 12
  781.  
  782.      MARJAM10.LIB                Documentation              March 1, 1989
  783.      ====================================================================
  784.  
  785.                                   WNDW_DOWN
  786.  
  787.      This function allows the programmer to display an "exploding"
  788.      window that "explodes" in the down direction.  Options as to the
  789.      location, border, time for the "exploding" effect and whether the
  790.      completed window is "shadowed" or not are provided.
  791.  
  792.      SYNTAX:
  793.  
  794.      WNDW_DOWN(<expN1>,<expN2>,<expN3>,<expN4>,<expN5>,<expN6>,[expN7])
  795.  
  796.      PASS:    expN1  top row of window
  797.               expN2  left column of window
  798.               expN3  bottom row of window
  799.               expN4  right column of window
  800.               expN5  border type number (see table below)
  801.               expN6  time of "explosion" (min 1)
  802.               expN7  optional  shadow number (0 = no shadow, 1 = shadow)
  803.  
  804.                                TABLE OF BORDERS
  805.                           --------------------------
  806.                           0 = no border
  807.                           1 = single top, bottom & sides
  808.                           2 = single top & bottom, double sides
  809.                           3 = double top & bottom, single sides
  810.                           4 = double top, bottom & sides
  811.  
  812.      RETURN:  .T.
  813.               .F.  if width or height less than 3 columns or 3 rows or
  814.                    less than 6 parameters are passed.
  815.  
  816.      SAMPLE:
  817.  
  818.               WNDW_DOWN(5,10,20,20,4,5,0)
  819.  
  820.               This will "explode" a window down from row 5, column 10
  821.               to row 20, column 20 with a double line border and no shadow.
  822.  
  823.               WNDW_DOWN(5,40,20,50,1,10,1)
  824.  
  825.               This will "explode" a window down from row 5, column 40
  826.               to row 20, column 50 with a single line border and a
  827.               a shadow.  This window will take twice as long to "explode".
  828.  
  829.  
  830.      SEE ALSO:  WNDW_UP
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.                                     Page 13
  846.  
  847.      MARJAM10.LIB                Documentation              March 1, 1989
  848.      ====================================================================
  849.  
  850.                                   WNDW_LEFT
  851.  
  852.      This function allows the programmer to display an "exploding"
  853.      window that "explodes" in the left direction.  Options as to the
  854.      location, border, time for the "exploding" effect and whether the
  855.      completed window is "shadowed" or not are provided.
  856.  
  857.      SYNTAX:
  858.  
  859.      WNDW_LEFT(<expN1>,<expN2>,<expN3>,<expN4>,<expN5>,<expN6>,[expN7])
  860.  
  861.      PASS:    expN1  top row of window
  862.               expN2  left column of window
  863.               expN3  bottom row of window
  864.               expN4  right column of window
  865.               expN5  border type number (see table below)
  866.               expN6  time of "explosion" (min 1)
  867.               expN7  optional  shadow number (0 = no shadow, 1 = shadow)
  868.  
  869.                                TABLE OF BORDERS
  870.                           --------------------------
  871.                           0 = no border
  872.                           1 = single top, bottom & sides
  873.                           2 = single top & bottom, double sides
  874.                           3 = double top & bottom, single sides
  875.                           4 = double top, bottom & sides
  876.  
  877.      RETURN:  .T.
  878.               .F.  if width or height less than 3 columns or 3 rows or
  879.                    less than 6 parameters are passed.
  880.  
  881.      SAMPLE:
  882.  
  883.               WNDW_LEFT(5,10,10,60,4,5,0)
  884.  
  885.               This will "explode" a window left from row 5, column 60
  886.               to row 10, column 10 with a double line border and no shadow.
  887.  
  888.               WNDW_LEFT(15,10,20,70,1,10,1)
  889.  
  890.               This will "explode" a window left from row 15, column 70
  891.               to row 20, column 10 with a single line border and a
  892.               shadow.  This window will take twice as long to "explode".
  893.  
  894.  
  895.      SEE ALSO:  WNDW_RIGHT
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.                                     Page 14
  911.  
  912.      MARJAM10.LIB                Documentation              March 1, 1989
  913.      ====================================================================
  914.  
  915.                                   WNDW_OUT
  916.  
  917.      This function allows the programmer to display an "exploding"
  918.      window that "explodes" in the left and right directions.  Options
  919.      as to the location, border, time for the "exploding" effect and
  920.      whether the completed window is "shadowed" or not are provided.
  921.  
  922.      SYNTAX:
  923.  
  924.      WNDW_OUT(<expN1>,<expN2>,<expN3>,<expN4>,<expN5>,<expN6>,[expN7])
  925.  
  926.      PASS:    expN1  top row of window
  927.               expN2  left column of window
  928.               expN3  bottom row of window
  929.               expN4  right column of window
  930.               expN5  border type number (see table below)
  931.               expN6  time of "explosion" (min 1)
  932.               expN7  optional  shadow number (0 = no shadow, 1 = shadow)
  933.  
  934.                                TABLE OF BORDERS
  935.                           --------------------------
  936.                           0 = no border
  937.                           1 = single top, bottom & sides
  938.                           2 = single top & bottom, double sides
  939.                           3 = double top & bottom, single sides
  940.                           4 = double top, bottom & sides
  941.  
  942.      RETURN:  .T.
  943.               .F.  if width or height less than 3 columns or 3 rows or
  944.                    less than 6 parameters are passed.
  945.  
  946.      SAMPLE:
  947.  
  948.               WNDW_OUT(5,10,10,60,4,5,0)
  949.  
  950.               This will "explode" a window from the center of column 60
  951.               and column 10 (column 35) out to row 5, column 10 and to
  952.               row 10, column 60 with a double line border and no shadow.
  953.  
  954.               WNDW_OUT(15,10,20,70,1,10,1)
  955.  
  956.               This will "explode" a window from the center of column 70
  957.               and column 10 (column 40) out to row 15, column 10 and to
  958.               row 20, column 70 with a single line border and a shadow.
  959.               This window will take twice as long to "explode".
  960.  
  961.               The QBE functions use this function rather extensively.
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.                                     Page 15
  976.  
  977.      MARJAM10.LIB                Documentation              March 1, 1989
  978.      ====================================================================
  979.  
  980.                                   WNDW_RIGHT
  981.  
  982.      This function allows the programmer to display an "exploding"
  983.      window that "explodes" in the right direction.  Options as to the
  984.      location, border, time for the "exploding" effect and whether the
  985.      completed window is "shadowed" or not are provided.
  986.  
  987.      SYNTAX:
  988.  
  989.      WNDW_RIGHT(<expN1>,<expN2>,<expN3>,<expN4>,<expN5>,<expN6>,[expN7])
  990.  
  991.      PASS:    expN1  top row of window
  992.               expN2  left column of window
  993.               expN3  bottom row of window
  994.               expN4  right column of window
  995.               expN5  border type number (see table below)
  996.               expN6  time of "explosion" (min 1)
  997.               expN7  optional  shadow number (0 = no shadow, 1 = shadow)
  998.  
  999.                                TABLE OF BORDERS
  1000.                           --------------------------
  1001.                           0 = no border
  1002.                           1 = single top, bottom & sides
  1003.                           2 = single top & bottom, double sides
  1004.                           3 = double top & bottom, single sides
  1005.                           4 = double top, bottom & sides
  1006.  
  1007.      RETURN:  .T.
  1008.               .F.  if width or height less than 3 columns or 3 rows or
  1009.                    less than 6 parameters are passed.
  1010.  
  1011.      SAMPLE:
  1012.  
  1013.               WNDW_RIGHT(5,10,10,60,4,5,0)
  1014.  
  1015.               This will "explode" a window right from row 5, column 10
  1016.               to row 10, column 60 with a double line border and no shadow.
  1017.  
  1018.               WNDW_RIGHT(15,10,20,70,1,10,1)
  1019.  
  1020.               This will "explode" a window right from row 15, column 10
  1021.               to row 20, column 70 with a single line border and a
  1022.               shadow.  This window will take twice as long to "explode".
  1023.  
  1024.  
  1025.      SEE ALSO:  WNDW_LEFT
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.                                     Page 16
  1041.  
  1042.      MARJAM10.LIB                Documentation              March 1, 1989
  1043.      ====================================================================
  1044.  
  1045.                                   WNDW_UP
  1046.  
  1047.      This function allows the programmer to display an "exploding"
  1048.      window that "explodes" in the up direction.  Options as to the
  1049.      location, border, time for the "exploding" effect and whether the
  1050.      completed window is "shadowed" or not are provided.
  1051.  
  1052.      SYNTAX:
  1053.  
  1054.      WNDW_UP(<expN1>,<expN2>,<expN3>,<expN4>,<expN5>,<expN6>,[expN7])
  1055.  
  1056.      PASS:    expN1  top row of window
  1057.               expN2  left column of window
  1058.               expN3  bottom row of window
  1059.               expN4  right column of window
  1060.               expN5  border type number (see table below)
  1061.               expN6  time of "explosion" (min 1)
  1062.               expN7  optional  shadow number (0 = no shadow, 1 = shadow)
  1063.  
  1064.                                TABLE OF BORDERS
  1065.                           --------------------------
  1066.                           0 = no border
  1067.                           1 = single top, bottom & sides
  1068.                           2 = single top & bottom, double sides
  1069.                           3 = double top & bottom, single sides
  1070.                           4 = double top, bottom & sides
  1071.  
  1072.      RETURN:  .T.
  1073.               .F.  if width or height less than 3 columns or 3 rows or
  1074.                    less than 6 parameters are passed.
  1075.  
  1076.      SAMPLE:
  1077.  
  1078.               WNDW_UP(5,10,20,20,4,5,0)
  1079.  
  1080.               This will "explode" a window up from row 20, column 10
  1081.               to row 5, column 20 with a double line border and no shadow.
  1082.  
  1083.               WNDW_UP(5,40,20,50,1,10,1)
  1084.  
  1085.               This will "explode" a window up from row 20, column 40
  1086.               to row 5, column 50 with a single line border and a
  1087.               a shadow.  This window will take twice as long to "explode".
  1088.  
  1089.  
  1090.      SEE ALSO:  WNDW_DOWN
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.                                     Page 17
  1106.  
  1107.      MARJAM10.LIB                Documentation              March 1, 1989
  1108.      ====================================================================
  1109.  
  1110.                                    DIM_CLR
  1111.  
  1112.      This function allows the programmer to eliminate any "bright"
  1113.      colors in the current color setting.  In other words, any "+'s"
  1114.      in the current color settings are eliminated.  This function
  1115.      actually resets the color setting.
  1116.  
  1117.      SYNTAX:  DIM_CLR()
  1118.  
  1119.      PASS:    nothing
  1120.  
  1121.      RETURN:  .T.
  1122.  
  1123.      SAMPLE:
  1124.  
  1125.               SET COLOR TO w+/b,gr+/r,n,n,w+/n
  1126.               currcolor = SETCOLOR()
  1127.  
  1128.                   currcolor would be w+/b,gr+/r,n,n,w+/n
  1129.  
  1130.               DIM_CLR()
  1131.               newcolor = SETCOLOR()
  1132.  
  1133.                   newcolor would be w/b,gr/r,n,n,w/n
  1134.  
  1135.               SETCOLOR(currcolor)
  1136.  
  1137.                   this would return colors to "bright"
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.                                     Page 18
  1171.  
  1172.      MARJAM10.LIB                Documentation              March 1, 1989
  1173.      ====================================================================
  1174.  
  1175.                                   RVRS_CLR
  1176.  
  1177.      This function allows the programmer to reverse the colors in the
  1178.      current color setting.  In other words, the background will become
  1179.      the foreground and the foreground the background in both the normal
  1180.      area and the enhanced area.  Any enhancements to the color settings,
  1181.      such as bright or flash, remain with their original area.
  1182.      (ie:  start in foreground, end in foreground)
  1183.  
  1184.      SYNTAX:  RVRS_CLR()
  1185.  
  1186.      PASS:    nothing
  1187.  
  1188.      RETURN:  .T.
  1189.  
  1190.      SAMPLE:
  1191.  
  1192.               SET COLOR TO w+/b,gr+/r,n,n,w+/n
  1193.               currcolor = SETCOLOR()
  1194.  
  1195.                   currcolor would be w+/b,gr+/r,n,n,w+/n
  1196.  
  1197.               RVRS_CLR()
  1198.               newcolor = SETCOLOR()
  1199.  
  1200.                   newcolor would be b+/w,r+/gr,n,n,w+/n
  1201.  
  1202.               SETCOLOR(currcolor) && to return to original settings
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.                                     Page 19
  1236.  
  1237.      MARJAM10.LIB                Documentation              March 1, 1989
  1238.      ====================================================================
  1239.  
  1240.                                   SWTCH_CLR
  1241.  
  1242.      This function allows the programmer to switch the colors in the
  1243.      current color setting.  In other words, the normal colors will be
  1244.      switched with the enhanced colors.  Any enhancements to the color
  1245.      settings, such as bright or flash, transfer to their new area.
  1246.      (ie: start in enhanced area, end in enhanced area)
  1247.  
  1248.      SYNTAX:  SWTCH_CLR()
  1249.  
  1250.      PASS:    nothing
  1251.  
  1252.      RETURN:  .T.
  1253.  
  1254.      SAMPLE:
  1255.  
  1256.               SET COLOR TO w+/b,gr+/r,n,n,w+/n
  1257.               currcolor = SETCOLOR()
  1258.  
  1259.                   currcolor would be w+/b,gr+/r,n,n,w+/n
  1260.  
  1261.               SWTCH_CLR()
  1262.               newcolor = SETCOLOR()
  1263.  
  1264.                   newcolor would be gr+/r,w+/b,n,n,w+/n
  1265.  
  1266.               SETCOLOR(currcolor) && to return to original settings
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.                                     Page 20
  1301.  
  1302.      MARJAM10.LIB                Documentation              March 1, 1989
  1303.      ====================================================================
  1304.  
  1305.                                  UNSLCT_CLR
  1306.  
  1307.      This function allows the programmer to "blank out" the unselected area
  1308.      of the current color settings.  In other words, the unselected color
  1309.      foreground will be the same as the background in order for unselected
  1310.      items to appear to be "blanked out".  This function is especially
  1311.      during the use of the ACHOICE() function for items that are not
  1312.      available for selection.
  1313.  
  1314.      SYNTAX:  UNSLCT_CLR()
  1315.  
  1316.      PASS:    nothing
  1317.  
  1318.      RETURN:  .T.
  1319.  
  1320.      SAMPLE:
  1321.  
  1322.               SET COLOR TO w+/b,gr+/r,n,n,w+/n
  1323.               currcolor = SETCOLOR()
  1324.  
  1325.                   currcolor would be w+/b,gr+/r,n,n,w+/n
  1326.  
  1327.               UNSLCT_CLR()
  1328.               newcolor = SETCOLOR()
  1329.  
  1330.                   newcolor would be b+/w,r+/gr,n,n,n/n
  1331.  
  1332.               SETCOLOR(currcolor) && to return to original settings
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.                                     Page 21
  1366.  
  1367.      MARJAM10.LIB                Documentation              March 1, 1989
  1368.      ====================================================================
  1369.  
  1370.                                    FILE_CNT
  1371.  
  1372.      This function allows the programmer to accurately determine the
  1373.      number of files in a directory using the ADIR() function.  One
  1374.      problem with the ADIR() function is that if the attribute array
  1375.      ( the array5 option on the Clipper S87 manual) is not passed with
  1376.      the ADIR() function, the two directory files "." and ".." will
  1377.      not be counted by the function when matching a "*.*" skeleton.
  1378.      While a programmer can prevent this by including this fifth array
  1379.      in the ADIR() function after DECLARE'ing it, the FILE_CNT function
  1380.      takes care of this with one line of code.
  1381.  
  1382.      SYNTAX:  FILE_CNT(<expC>)
  1383.  
  1384.      PASS:    expC  a character string of the skeleton such as *.*
  1385.                     this string must be enclosed in quotes.
  1386.  
  1387.      RETURN:  a numeric integer of the number of files that meet the
  1388.               skeleton.
  1389.  
  1390.      SAMPLE:
  1391.  
  1392.               DECLARE all_files[FILE_CNT("*.*")]
  1393.  
  1394.               or
  1395.  
  1396.               filecount = FILE_CNT("*.*")
  1397.               DECLARE all_files[filecount]
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.                                     Page 22
  1431.  
  1432.      MARJAM10.LIB                Documentation              March 1, 1989
  1433.      ====================================================================
  1434.  
  1435.                                    USR_SLCT
  1436.  
  1437.      This function is a general all purpose function that can be used
  1438.      with ACHOICE to control the returned value when a key that generates
  1439.      an exception is pressed.  These keys include Leftarrow, Rightarrow,
  1440.      Home, End, Return, Escape and any letter key.  This function either
  1441.      returns a value to ACHOICE that maintains it active or terminates
  1442.      its execution.  Some keys will generate a beep to indicate the error
  1443.      of pressing the key.
  1444.  
  1445.      SYNTAX:
  1446.  
  1447.      ACHOICE(<expN1>,<expN2>,<expN3>,<expN4>,<array1>[,<array2>,
  1448.              "USR_SLCT",[<expN5>[,<expN6>]]])
  1449.  
  1450.      PASS:    nothing
  1451.  
  1452.      RETURN:  .T.
  1453.  
  1454.      SAMPLE:
  1455.  
  1456.               DECLARE array1[5]
  1457.               DECLARE array2[5]
  1458.               choice = ACHOICE(5,10,9,20,array1,array2,USR_SLCT)
  1459.  
  1460.  
  1461.      While not verified, it is suspected that this function will also
  1462.      work with the DBEDIT() function to handle keys that generate exceptions.
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.                                     Page 23
  1496.  
  1497.      MARJAM10.LIB                Documentation              March 1, 1989
  1498.      ====================================================================
  1499.  
  1500.                                    History
  1501.  
  1502.  
  1503.      March 12, 1989     Initial release
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.                                     Page 24
  1561.  
  1562.      MARJAM10.LIB                  ORDER FORM               March 1, 1989
  1563.      ====================================================================
  1564.  
  1565.  
  1566.      DATE:  ______________
  1567.  
  1568.  
  1569.      Please rush to me the MARJAM Library, Version 1.0 in the quantity
  1570.      indicated below.  Enclosed is a check or money order in US funds
  1571.      which entitles me to become a registered user of the MARJAM Library.
  1572.      I understand that this registration will provide me with:
  1573.  
  1574.      -  Notification of future revisions prior to release
  1575.      -  Updating to future revisions for $10 prior to release
  1576.      -  Source code for currently released version of the MARJAM Library
  1577.  
  1578.      I understand all the statements made in the Disclaimer section of
  1579.      the Documentation and agree to abide by the rules of the Agreement
  1580.      section of this same Documentation.
  1581.  
  1582.  
  1583.      ____     One (1) copy of the MARJAM Library           $ 25.00
  1584.  
  1585.      ____     Four (4) copies of the MARJAM Library        $ 75.00
  1586.  
  1587.      ____     Eight (8) copies of the MARJAM Library       $125.00
  1588.  
  1589.      ____     Twelve or more copies of the MARJAM Library  $175.00
  1590.  
  1591.  
  1592.      Please make checks payable to Margaret G. Bodine or James C. Bodine
  1593.  
  1594.      Mail your check or money order to:
  1595.  
  1596.                              The MARJAM Library
  1597.                              149 Stockton Lane
  1598.                              Rochester, NY  14625
  1599.  
  1600.      Please allow 2 to 3 weeks for delivery.
  1601.  
  1602.      Thank you in advance for your interest in The MARJAM Library.
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.                                     Page 25